system関数は、OS提供のコマンドを実行します。なお、この関数はコマンドが終了するまで待ち状態になります。
#include <stdlib.h>
int system(const char *command);
*commandは実行するコマンドを指定します。
戻り値として、コマンドの終了ステータスを返します。また、コマンドが実行できなかった場合は-1を返します。
次の例題プログラムは、「cat -n ファイルパス名
」形式のコマンドを実行しています。
プログラム 例
#include <stdio.h> #include <stdlib.h> int main(int argc, char **argv) { char command[50] = 'cat -n '; if (argc == 2) { /* catコマンドを生成 */ strcat(command, argv[1]); /* コマンド実行 */ if (system(command) == -1) { printf('コマンドが実行できませんでした\n'); } } else { printf('実行時引数の数が不当です\n'); } return 0; }
例の実行結果
$ ./system.exe temp.txt 1 #include <stdio.h> 2 3 int main() 4 { 5 printf('Hello World!!.\n'); 6 7 return 0; 8 } $ $ ./system.exe temp_01.txt cat: temp_01.txt: そのようなファイルやディレクトリはありません $